
//import java.util.ArrayList;
//import hoja4.Abstracta;
import java.util.LinkedList;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author Luisa Portillo 
 */
public class StackL <L> extends Abstracta <L>{
    // Atributos
    private boolean empty; //Conocer si esta vacia la lista
    private LinkedList<L> array; //Crear la lista simplemente encadenada
    private int cant;
      
    //Constructor en donde se inicializan los valores de los atributos y se
    // crea el array list
    public StackL(){
        array = new LinkedList<L>();
        empty = true;
        cant = 0;
    }

    
    // Metodo que ingresa los valores en el Stack
    @Override
    public void push(L valor) {
        array.add(valor);
        cant++;
        empty = false;
    }

    // Metodo que elimina datos del Stack
    @Override
    public L pop() {
        L dato = null;
        if(empty == false){
            cant--;
            dato = array.get(cant);
            array.remove(cant);
            
        }
        else{
           System.out.println("El Stack se encuentra vacio");
        }
    return dato; 
    }

    // Metodo que solo se utiliza para verificar que dato es el proximo en salir.
    @Override
    public L peek() {
        L dato1 = null;
        return dato1;
    }

    // Metodo que verifica que si el Stack esta vacio.
    @Override
    public boolean isEmpty() {
        if(cant==0)
            empty = true;
        return empty;
    }

}


    
    

